﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace UI.Desktop
{
    public partial class frmEditarProfesional : Form
    {
        private DataSet numProvincia;

        public frmEditarProfesional()
        {
            InitializeComponent();

            Business.Entities.Paciente provi = new Business.Entities.Paciente();
            DataSet dsProv = new DataSet();
            dsProv = provi.ObtenerListaProvincias();
            numProvincia = new DataSet();
            numProvincia = dsProv;

        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                string dni = txtDNI.Text.ToString();
                Business.Entities.Profesional Prof = new Business.Entities.Profesional();
                DataSet dsProf = Prof.ObtenerDatosProfesional(dni);
                
                txtNombre.Text = dsProf.Tables["Profesional"].Rows[0][2].ToString();
                txtApellido.Text = dsProf.Tables["Profesional"].Rows[0][3].ToString();
                txtDNI2.Text = dsProf.Tables["Profesional"].Rows[0][1].ToString();
                string sexo= dsProf.Tables["Profesional"].Rows[0][8].ToString();
                cbEspecialidad.Text = dsProf.Tables["Profesional"].Rows[0][4].ToString();
                chkProfesional.Checked = Convert.ToBoolean(dsProf.Tables["Profesional"].Rows[0][5]);

                if (sexo == "M") { rdbMasculino.Checked= true; }
                else if (sexo == "F") { rdbFemenino.Checked= true; }


            }
            catch
            {
                MessageBox.Show("El profesional no existe", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        Business.Entities.Profesional enProf = new Business.Entities.Profesional();

        private void btnGuardarPaciente_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text == "" || txtNombre.Text == "" || txtApellido.Text == "" || txtDNI.Text == "")
            {

                MessageBox.Show("Campos invalidos, no puede haber ninguno vacio", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            else
            {
                string dni = txtDNI.Text;
                DataSet dsProf = new DataSet();
                dsProf = enProf.ObtenerDatosProfesional(dni);


                dsProf.Tables["Profesional"].Rows[0][1] = txtDNI.Text;
                dsProf.Tables["Profesional"].Rows[0][2] = txtNombre.Text;
                dsProf.Tables["Profesional"].Rows[0][3] = txtApellido.Text;
                dsProf.Tables["Profesional"].Rows[0][4] = cbEspecialidad.Text;
                dsProf.Tables["Profesional"].Rows[0][5] = chkProfesional.Checked;
                if (rdbMasculino.Checked == true)
                {
                    dsProf.Tables["Profesional"].Rows[0][8] = "M";
                }
                else { dsProf.Tables["Profesional"].Rows[0][8] = "F"; }
                
                

                enProf.EditarProfesional(dsProf);
                MessageBox.Show("El Profesional fue modificado con exito", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();

            }
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea eliminar el profesional " + txtApellido.Text.ToString() + " " + txtNombre.Text.ToString() + "?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                try
                {
                    Business.Entities.Profesional Prof = new Business.Entities.Profesional();
                    // MessageBox.Show("Select * from Personal where DNI = '+ dni +'");
                    Prof.EliminarProfesional(txtDNI.Text.ToString());
                    MessageBox.Show("Profesional eliminado correctamente.");
                    this.Refresh();
                }
                catch
                {
                    MessageBox.Show("El Profesional no se pudo eliminar.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

            }
        }

        private void cbEspecialidad_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbEspecialidad_Click(object sender, EventArgs e)
        {
            Business.Entities.Especialidad Especialidad = new Business.Entities.Especialidad();
            DataSet dsEspecialidad = new DataSet();
            dsEspecialidad = Especialidad.ObtenerListaEspecialidades();
            ObtenerEspecialidad(dsEspecialidad);
        }

        private void ObtenerEspecialidad(DataSet dsEspecialidad)
        {
            cbEspecialidad.Text = "Seleccione su Especialidad";
            cbEspecialidad.DataSource = dsEspecialidad.Tables["Especialidad"];
            cbEspecialidad.DisplayMember = dsEspecialidad.Tables["Especialidad"].Columns[1].Caption.ToString(); // como dsProv lleva el id_prov y el nombre ponemos 1 que es la columna del nombre
        }

        private void frmEditarProfesional_Load(object sender, EventArgs e)
        {

        }

        private void cbEspecialidad_Click_1(object sender, EventArgs e)
        {
            Business.Entities.Especialidad Esp = new Business.Entities.Especialidad();
            DataSet dsEsp = new DataSet();
            dsEsp = Esp.ObtenerListaEspecialidades();
            ObtenerEspecialidad(dsEsp);
        }

        private void obtenerEspecialidad(DataSet dsEsp)
        {
            cbEspecialidad.DisplayMember = dsEsp.Tables["Especialidad"].Columns[1].Caption.ToString();
        }








    }
}